<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件


function get_uniqid_id()
{
    $uuid = md5(uniqid(mt_rand(), true));
    return $uuid;
}

/**
 * 密码加密方法
 * @param string $pw 要加密的原始密码
 * @param string $authCode 加密字符串
 * @return string
 */
function md5_password($pw, $authCode = '')
{
    if (empty($authCode)) {
        $authCode = 'qMhsKe5rvotHLjcmvl';
    }
    $result = "###" . md5(md5($authCode . $pw));
    return $result;
}


/**
 * 密码比较方法,所有涉及密码比较的地方都用这个方法
 * @param string $password 要比较的密码
 * @param string $passwordInDb 数据库保存的已经加密过的密码
 * @return boolean 密码相同，返回true
 */
function md5_compare_password($password, $passwordInDb)
{
    return cmf_password($password) == $passwordInDb;

}


/**
 * 随机字符串生成
 * @param int $len 生成的字符串长度
 * @return string
 */
function random_string($len = 6)
{
    $chars = [
        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
        "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
        "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
        "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
        "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
        "3", "4", "5", "6", "7", "8", "9"
    ];
    $charsLen = count($chars) - 1;
    shuffle($chars);    // 将数组打乱
    $output = "";
    for ($i = 0; $i < $len; $i++) {
        $output .= $chars[mt_rand(0, $charsLen)];
    }
    return $output;
}

/**
 * 后台API接口数据输出
 * @param $status  业务状态码
 * @param $message 信息提示
 * @param array $data 数据
 * @return \think\response\Json
 */
//function show($status, $message, $data)
//{
//    if (is_array($data)) {
//        $data = [
//            'status' => $status,
//            'message' => $message,
//            'data' => $data,
//        ];
//
//        return json($data);
//    } else {
//
//        $data->data = $data;
//        $data->status = $status;
//        $data->message = $message;
//        return $data;
//    }
//
//
//}

///**
// * 后台API接口数据输出
// * @param $status  业务状态码
// * @param $message 信息提示
// * @param array $data 数据
// * @return \think\response\Json
// */
function show($status,$message,$data){
    $data = [
        'status' => $status,
        'message' => $message,
        'data' => $data,
    ];
    return json($data);
}

/**
 * 分页输出
 * @param $status
 * @param $message
 * @param $count
 * @param $data
 * @return \think\response\Json
 */
function show_page($status,$message,$count,$data){
    $data = [
        'status' => $status,
        'message' => $message,
        'count' => $count,
        'data' => $data,
    ];
    return json($data);
}


/**
 * 获取客户端IP
 */
function get_IP()
{
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
        $ip = getenv("HTTP_CLIENT_IP");
    } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    } else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = "unknown";
    }

    return  $ip;
}
